Conventionally, telecommunications and network infrastructure providers have relied on often decades old switching technology to providing routing for network traffic. Businesses and consumers, however, are driving industry transformation by demanding new converged voice, data and video services. The ability to meet these demands often can be limited by existing IT and network infrastructures that are closed, proprietary and too rigid to support these next generation services. As a result, telecommunications companies are transitioning from traditional, circuit-switched Public Switched Telephone Networks (PSTN), the common wired telephone system used around the world to connect any one telephone to another telephone, to Voice Over Internet Protocol (VoIP) networks. VoIP technologies enable voice communication over “vanilla” IP networks, such as the public Internet. Additionally, a steady decline in voice revenues has resulted in heightened competitive pressures as carriers vie to grow data/service revenues and reduce churn through the delivery of these more sophisticated data services. Increased federal regulation, security and privacy issues, as well as newly emerging standards can further compound the pressure.
However, delivering these more sophisticated data services has proved to be more difficult than first imagined. Existing IT and network infrastructures, closed proprietary network-based switching fabrics and the like have proved to be complex and rigid for allowing the creation and deployment of new service offerings.
The session initiation protocol (SIP) has helped in standardizing the communications and signaling between various clients in public switched telephone network (PSTN). SIP is an application-level protocol that specifies the creation, establishment, modifying and termination of sessions between two or more clients. A specification of the SIP protocol can be found at RFC 3261 available from the IETF SIP Working Group, which is hereby incorporated herein by reference in its entirety.
A number of SIP application servers have emerged, which allow deployment of various enhancements and services that are focused on telecommunications and voice over internet protocol (VoiP) networks. These SIP application servers allow various applications and services to be developed, which implement the SIP protocol as well as converged applications which may span other protocols, such as the hypertext transfer protocol (HTTP). One such SIP application server is the WebLogic® SIP Server, available from BEA Systems Inc.
However, development and deployment of such SIP applications has introduced a number of issues and concerns different from and not previously found with other protocols, such as HTTP. For example, the number and manner of communications in SIP has made it desirable for other management algorithms, infrastructures and techniques for optimizing latency, reducing errors and obtaining various other advantages.
Notably, the methodologies for testing, diagnosis, debugging and instrumentation of programming language code can be significantly improved to allow better detection and correction of errors or bugs within SIP applications. For example, due to a high number of messages and requests processed in a typical SIP application server deployment, highly specific and localized errors can be difficult to trace. Monitoring all incoming or outgoing traffic can be system resource-intensive and burdensome in an environment that is typically already latency-sensitive. Furthermore, generating very large volumes of diagnostic information may not always be helpful in determining the problem, due to the difficulties in sorting and searching through all of the data.
As an illustration, tracking down a bug that affects only one or a few clients in the system can be highly difficult because of the thousands or even millions of messages being processed by the SIP application servers at any given time. If information for all of this message traffic were to be inspected, such data would be too large and unmanageable to provide any significant benefit. Furthermore, performing diagnostics actions for every incoming message can cause significant latency which is also undesirable in the SIP application server environment.
In light of the foregoing and other difficulties identified by the applicants, a system is desirable for providing an instrumentation service to various applications, which can enable selectively performing diagnostic actions only on requests that match particular criteria, keep the volume of generated diagnostic information to a manageable level, allow diagnosis of selected requests without slowing down other request processing in the system, and provide rich, detailed and relevant information about selected messages. Other advantages of such a system will also be apparent upon review of the following description, figures and claims.